package pluviometria;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * 
 * @author edgar
 * Mantiene informacion de estaciones de medicion de precipitaciones en la zona de influencia
 * sobre el acuifero de Quibor
 */
@Entity
@Table(name="estacion")
public class Estacion {

	@Id
	@GeneratedValue
	private int id;
	private String nombre;
	private String tipo;
	private String serial;
	private String zona;
	private String ubicacion;
	private double latitud;
	private double longitud;
	private double altitud;
	private String org;
	private Calendar fechaInstalacion;
	private Calendar fechaEliminacion;
	private float retardoRecarga;
	private float areaCubierta;
	private float porcentajeRecarga;
	private List<MedicionAnual> historico;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getSerial() {
		return serial;
	}
	public void setSerial(String serial) {
		this.serial = serial;
	}
	public String getZona() {
		return zona;
	}
	public void setZona(String zona) {
		this.zona = zona;
	}
	public String getUbicacion() {
		return ubicacion;
	}
	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}
	public double getLatitud() {
		return latitud;
	}
	public void setLatitud(double latitud) {
		this.latitud = latitud;
	}
	public double getLongitud() {
		return longitud;
	}
	public void setLongitud(double longitud) {
		this.longitud = longitud;
	}
	public double getAltitud() {
		return altitud;
	}
	public void setAltitud(double altitud) {
		this.altitud = altitud;
	}
	public String getOrg() {
		return org;
	}
	public void setOrg(String org) {
		this.org = org;
	}
	public Calendar getFechaInstalacion() {
		return fechaInstalacion;
	}
	public void setFechaInstalacion(Calendar fechaInstalacion) {
		this.fechaInstalacion = fechaInstalacion;
	}
	public Calendar getFechaEliminacion() {
		return fechaEliminacion;
	}
	public void setFechaEliminacion(Calendar fechaEliminacion) {
		this.fechaEliminacion = fechaEliminacion;
	}
	public float getRetardoRecarga() {
		return retardoRecarga;
	}
	public void setRetardoRecarga(float retardoRecarga) {
		this.retardoRecarga = retardoRecarga;
	}
	public float getAreaCubierta() {
		return areaCubierta;
	}
	public void setAreaCubierta(float areaCubierta) {
		this.areaCubierta = areaCubierta;
	}
	public float getPorcentajeRecarga() {
		return porcentajeRecarga;
	}
	public void setPorcentajeRecarga(float porcentajeRecarga) {
		this.porcentajeRecarga = porcentajeRecarga;
	}
	@OneToMany(mappedBy = "estacion")
	public List<MedicionAnual> getHistorico() {
		return historico;
	}
	public void setHistorico(List<MedicionAnual> historico) {
		this.historico = historico;
	}
	public void inicializarHistorico(){
		historico = new ArrayList<MedicionAnual>();
	}
	public void agregarMedicion(MedicionAnual medicion){
		historico.add(medicion);
	}
	
	// metodos estadisticos
	
	public List<Lectura> promedio(){
		return null;
	}
	
	public List<Lectura> desviacionStandar(){
	
		return null;
	}
	
	public List<Lectura> porcentaje(){
		return null;
	}
	
	public List<Lectura> coeficienteVariacion(){
		return null;
	}
}
